package com.ztesoft.web.baseconfig.db.dao.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;

import com.ztesoft.web.baseconfig.db.arg.DmPlanRelationArg;
import com.ztesoft.web.baseconfig.db.po.DmPlanRelationPO;
import com.ztesoft.web.taskgenerator.db.po.DmTaskPO;

public interface IDmPlanRelationMapper {

	List<Integer> countByArg(DmPlanRelationArg arg);

	List<DmPlanRelationPO> selectByArg(DmPlanRelationArg arg);

	/**
	 * 根据组号查询计划策略关系
	 * 
	 * @param record
	 * @return
	 */
	List<DmPlanRelationPO> selectByGroupNbr(DmPlanRelationPO record);

	/**
	 * 查找计划下的策略组
	 * 
	 * @param dmPlanId
	 * @return
	 */
	List<DmPlanRelationPO> selectGroupByDmPlan(Integer dmPlanId);

	DmPlanRelationPO selectByPrimaryKey(DmPlanRelationPO record);

	/**
	 * 根据策略ID查询计划策略关系对象
	 * 
	 * @param record
	 * @return
	 */
	DmPlanRelationPO selectByDmStrategyId(DmPlanRelationPO record);

	List<DmPlanRelationPO> selectByArgAndPage(DmPlanRelationArg arg, RowBounds rowBound);

	int insert(DmPlanRelationPO record);

	int insertSelective(DmPlanRelationPO record);

	int insertBatch(@Param("list") List<DmPlanRelationPO> records);

	int updateByArgSelective(@Param("record") DmPlanRelationPO record, @Param("arg") DmPlanRelationArg arg);

	int updateByArg(@Param("record") DmPlanRelationPO record, @Param("arg") DmPlanRelationArg arg);

	int updateByPrimaryKeySelective(DmPlanRelationPO record);

	int updateByPrimaryKey(DmPlanRelationPO record);

	int updateDToA(Integer dmPlanId);

	int updateTo00X(Integer dmPlanId);

	int deleteByArg(DmPlanRelationArg arg);

	int deleteByPrimaryKey(DmPlanRelationPO record);

	List<DmPlanRelationPO> selectByDmPlanId(Integer dmPlanId);

	DmPlanRelationPO selectBySourceDataId(@Param("sourceDataId") Integer sourceDataId);

	List<DmPlanRelationPO> selectByDmPlanId00X(Integer dmPlanId);

	List<DmPlanRelationPO> selectByEditPlan(@Param("dmPlanId") Integer dmPlanId, @Param("groupNbr") String groupNbr);

}